#ifndef COMPRESS
#define COMPRESS

#include <cmath>
#include <iostream>
#include <map>
#include "compressData.h"
#include "Image.h"
#include "waveletTransform.h"
#include "binFile.h"
#include "huffman.h"

class Compress
{
private:
    WaveletTransform *wavv;

    int q;

public:
    Compress(WaveletTransform *w):wavv(w),q(1){}
    Compress(WaveletTransform *w,int x):wavv(w),q(x){}

    DecompressData* startCompress(Image *image, int);
    void quantize(double **tab, int width, int height,int w);
    
    
    void huffmanCode(DecompressData* data, int width, int height, std::string file, int);

    ~Compress()
    {
        delete  wavv;
    }

    inline void setQuantize(int x)
    {
        q=x;
    }

};



#endif